<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta http-equiv="X-UA-Compatible" content="ie=edge" />
		<title>Document</title>
	</head>
	<body>
		<script>
			// for (var i = 0; i < 5; i++) {
			// 	setTimeout(function() {
			// 		console.log(new Date(), i)
			// 	}, 1000)
			// }
			// console.log(new Date(), i)

			//01： 闭包保护私有变量 五个延时器 有五个i 0-4 (闭包)
			// for (var i = 0; i < 5; i++) {
			// 	;(function(i) {
			// 		setTimeout(function() {
			// 			console.log(new Date(), i)
			// 		}, 1000)
			// 	})(i)
			// }
			// console.log(new Date(), i)

			// 02: JS 中基本类型（Primitive Type）的参数传递是按值传递的特征
			// var time = function(i) {
			// 	setTimeout(function() {
			// 		console.log(new Date(), i)
			// 	}, 1000)
			// }

			// for (var i = 0; i < 5; i++) {
			// 	time(i)
			// }
			// console.log(new Date(), i)

			// 03: 定时器的第三个参数问题
			// for (var i = 0; i < 5; i++) {
			// 	setTimeout(
			// 		function(i) {
			// 			console.log(new Date(), i)
			// 		},
			// 		1000,
			// 		i
			// 	)
			// }

			// console.log(new Date(), i)

			//04: ES6 let 作用域
			// for (let i = 0; i < 5; i++) {
			// 	setTimeout(function() {
			// 		console.log(new Date(), i)
			// 	}, 1000)
			// }

			// console.log(new Date(), i)

			// for (var i = 0; i < 5; i++) {
			// 	setTimeout(function() {
			// 		console.log(new Date(), i)
			// 	}, 1000)
			// }
			// console.log(new Date(), i)

		</script>
	</body>
</html>
